﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyTetris
{
    public class ZBlock:BlockOfFour
    {
        public ZBlock():base(2,5)
        { }

        //设置整个Z形方块的中心点的X坐标
        public override int CenterIndexX
        {
            get
            {
                //使用编号为2的基础小块的索引X坐标
                return squares[2].IndexLeft;
            }
            set
            {
                throw new NotImplementedException();
            }
        }
        //设置整个Z形方块的中心点的Y坐标
        public override int CenterIndexY
        {
            get
            {
                //使用编号为2的基础小块的索引Y坐标
                return squares[2].IndexTop;
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        //给四个基础小方块进行方块内部编号并编辑其位置，使其成为Z形方块
        protected override void SetOutterPosition(int indexX, int indexY)
        {
            //编号为0的基础小块的像素坐标为其索引坐标*基础小块的边长
            squares[0].PixelLeft = indexX*Square.SQUARE_WIDTH;
            squares[0].PixelTop = indexY*Square.SQUARE_WIDTH;

            ////编号为1的基础小块的像素横坐标等于编号为0的基础小块的像素横坐标加上一个基础小块的边长
            squares[1].PixelLeft = squares[0].PixelLeft + Square.SQUARE_WIDTH;
            //编号为1的基础小块的像素纵坐标等于编号为0的基础小块的像素纵坐标
            squares[1].PixelTop = squares[0].PixelTop;

            //编号为2的基础小块的像素横坐标等于编号为0的基础小块的像素横坐标加上一个基础小块的边长
            squares[2].PixelLeft = squares[0].PixelLeft + Square.SQUARE_WIDTH;
            //编号为2的基础小块的像素纵坐标等于编号为0的基础小块的像素纵坐标加上一个基础小块的边长
            squares[2].PixelTop = squares[0].PixelTop + Square.SQUARE_WIDTH;

            //编号为3的基础小块的像素横坐标等于编号为0的基础小块的像素横坐标加上两个基础小块的边长
            squares[3].PixelLeft = squares[0].PixelLeft + Square.SQUARE_WIDTH*2;
            //编号为3的基础小块的像素纵坐标等于编号为0的基础小块的像素纵坐标加上一个基础小块的边长
            squares[3].PixelTop = squares[0].PixelTop + Square.SQUARE_WIDTH;
        }
    }
}
